1. Field of the Invention
The present invention relates to apparatus for generating waveforms. In particular, the present invention relates to digital electronic apparatus for synthesizing electrical analog or digital waveforms.
2. Description of the Prior Art
In the past, various forms of arbitrary function generators have been used and proposed for a wide variety of applications. For example, the ability to generate arbitrary time varying electrical signals is required in process control systems, machine control systems for controlling the motion of a machine to create a desired contour or profile, laboratory test systems to create laboratory test waveforms, cathode ray tube controls for generating deflection voltage or current waveforms, and systems for synthesizing or simulating various physiological waveforms which may be produced or created within a living organism.
In the past, time varying electrical signals have been provided by electro-mechanical systems. For example, in one common type of system, a cam is formed having a profile which corresponds to a desired waveform. A cam follower follows the cam profile, and the movement of the cam follower is converted to an electrical analog signal by means of a potentiometer. Similar techniques have been used in which a waveform is drawn on a conductive layer, and a servo system drives a probe which follows the waveform. Once again, a potentiometer linked to the probe generates the analog waveform.
It is apparent that these electro-mechanical systems have significant disadvantages. They are limited in speed and accuracy. In addition, due to their mechanical nature, they are subject to wear.
To overcome the disadvantages of the prior art electro-mechanical systems, various electronic systems have been proposed which are capable of generating arbitrary time varying waveforms. One particularly advantageous approach to the generation of arbitrary waveforms uses digital electronic devices. Electrical waveform generators of this type provide the potential of higher speed operation and higher accuracy than is possible with electro-mechanical systems. In addition, the rapid advances in digital integrated circuits have made this type of system particularly attractive. The following patents describe digital systems which generate time varying waveforms.
3,506,812-Rosener PA1 3,529,138-Andre PA1 3,621,228-Paine PA1 3,662,160-Hoppes PA1 3,691,551-Kashio PA1 3,716,705-Newell PA1 3,727,037-Zorn PA1 3,739,374-Kiowski PA1 3,763,364-Deutsch PA1 3,729,625-Inoue PA1 3,822,380-Forgione PA1 3,836,902-Okuda PA1 3,917,932-Saita PA1 3,962,573-Staley PA1 4,023,027-Strathman PA1 4,064,423-Atkisson
Some digital function generators have used a point-by-point approach. Every resolvable point of the curve is stored in a separate address in digital memory. The address itself is the time coordinate, and the number stored at that address is the magnitude coordinate. This approach, however, has many disadvantage The most significant disadvantage is that it requires an excessive amount of memory storage for even a small and simple waveform.
Another approach used by some digital waveform generators is to approximate the waveform by multiple line segments. This is typically achieved in a digital system by means of a counter which is driven by a pulse rate multiplier. U.S. Pat. No. 3,529,138 by S. N. Andre et al describes one function generator of this type. This function generator however, is extremely limited in its capabilities. The system allows only six input pulse rates. While this may be acceptable for generating relatively simple time varying waveforms, the generation of complex waveforms at high speed and high resolution is not possible with the generator of the Andre patent.
Two other patents which describe producing arbitrary functions by sequentially connected linear ramp segments are U.S. Pat. No. 3,662,160 by Hoppes, and U.S. Pat. No. 4,064,423 by Atkisson, Jr. In each of these patents, every slope segment requires one line of program (i.e. one stored digital word). In the Hoppes patent each program word contains both the new end point and the specified time increment for reaching it. Hardware is provided to subtract the previous end point from the new end point and obtain an amplitude increment. By hardware means, the amplitude increment is divided by the time increment to get a velocity value which is then used as a control input to the input pulse rate multiplier. In addition, since every word contains both a new end point, and a specified time increment, the number of bits of resolution for the end points and time increments is extremely limited, unless excessively long words are used.
In the Atkisson, Jr. patent, as in the Hoppes patent, each slope segment requires one line of program (i.e. one word). In the Atkisson, Jr. patent, the program word contains the desired amplitude change, the desired time change, and the sign (+ or -) of the slope of the segment being generated. Once again, hardware is required to convert the amplitude change and time change to the desired pulse rate which drives a counter. The Atkisson, Jr. wave generator, like the Hoppes generator, therefore, requires special hardware to perform the mathematical operations necessary to produce the necessary slope value of each segment. In addition, resolution is extremely limited, since each word must contain the amplitude change and time change.
Despite the variety of proposed digital systems for generating waveforms, the utilization of systems of this type has been relatively limited. Most waveform generators have been developed for a specific use or purpose, and have been unable to meet all of the various requirements for the different application areas of an arbitrary waveform generator. The prior art digital systems have one or more significant disadvantages. First, many are limited in the kinds of waveforms and the resolution which is achieved. Second, many are difficult to use or program. Third, many require excessive hardware and/or memory capacity. Fourth, most are limited to providing singleaxis waveforms. There remains a need for digital waveform generators which are capable of generating a wide variety of complex arbitrary waveforms and yet are simple to use, simple to program, and have a minimum of hardware and operating complexity.